package com.qingmeng.outsourcing.portal.service;

import com.qingmeng.outsourcing.model.User;
import com.qingmeng.outsourcing.portal.enums.RegisterResult;
import com.qingmeng.outsourcing.portal.enums.SMSResult;
import com.qingmeng.outsourcing.portal.model.dto.UserRegisterParam;

import java.util.Iterator;
import java.util.Map;

public interface UserService {
    User getUserByUsername(String username);

    /**
     * 发送短信验证码
     * @param phone 电话号码
     * @param identify 身份或者认证表示（也就是短信验证码应用约四个场景）
     * @return 短信发送结果
     */
    SMSResult sendMessageCode(String phone, Integer identify);

    /**
     * 用户注册
     * @param param 前端传递过来的参数
     * @return 注册结果枚举
     */
    RegisterResult register(UserRegisterParam param);

    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 包含token和tokenHeader等信息的Map
     */
    Map<String,String> login(String username,String password);
}
